package main

import "fmt"

func main() {
	//定义一个map 默认为nil 可以自动扩容
	map1 := map[string]int{"Java": 100, "Go": 99}
	map2 := make(map[int]string)
	fmt.Println(map1) //map[Go:99 Java:100]
	fmt.Println(map2) //map[]

	//添加键值对
	map2[1] = "value1"
	map2[2] = "value2"
	fmt.Println(map2) //map[1:value1 2:value2]
	//获取键值对
	fmt.Println(map2[1]) //value1
	fmt.Println(map2[3]) //不存在则为类型默认值
	//删除键值对
	delete(map2, 1)
	fmt.Println(map2) //map[2:value2]

	//获取值和状态
	value1, ok := map2[4]
	fmt.Printf("值是：%s，状态是：%t\n", value1, ok) //值是：，状态是：false

	//查看长度和容量
	fmt.Printf("长度是：%d\n", len(map2)) //长度是：1

	//遍历
	map2[1] = "value1"
	for key, value := range map2 {
		/*
			key是：1，值是：value1
			key是：2，值是：value2
		*/
		fmt.Printf("key是：%d，值是：%s\n", key, value)
	}
}
